When performing Digital Signal Processing (DSP) on a digital signal, it is often necessary to convert the sampling rate associated with the signal. For example, a signal associated with a source sampling rate (Fx) may need to be converted into a signal associated with a different, destination sampling rate (Fy).
Typically, the source sampling rate and the destination sampling rate are pre-determined and an appropriate Sampling Rate Conversion (SRC) structure is designed to perform the task. For example, a filter may be designed for a specific application that requires a particular sampling rate ratio (Fx/Fy).
FIG. 1 is a block diagram of a traditional SRC structure 100. In this case, a source signal x[n] is associated with source sampling rate Fx. An interpolation 110 (i.e., up-sampling) by a factor of I is performed on the source signal. The interpolation 110 will also generally involve a low-pass filter 120 (e.g., an anti-aliasing filter). A decimation 130 (i.e., down-sampling) by a factor of D is then performed to create an output signal y[n] associated with a destination sampling rate Fy (where Fy equals I/D*Fx). The low-pass filter is designed to attenuate aliasing artifacts resulting from the up-sampling process and to band-limit the signal to avoid aliasing artifacts from decimation.
For example, converting a source sampling rate Fx by a factor of 1.5 can be achieved through interpolation 110 by a factor of three and then decimation 130 by a factor of two. This approach, however, can be inefficient when a conversion requires interpolation 110 and/or decimation 130 by a large factor. By way of example, a conversion from 48 Kilohertz (KHz) to 44.1 KHz requires interpolation 110 by a factor of 147 and then decimation 130 by a factor of 160. These types of substantial interpolation and/or decimation factors may also require impractically large filters in order to meet Nyquist requirements.
Another disadvantage with the traditional approach is that a filter must be designed for a specific pair of sampling rates. That is, a filter that is designed to convert a source signal with a sample rate of 48 KHz into a destination signal with a sampling rate of 44.1 KHz cannot be used for source and/or destination signals that have other sampling rates.